A video surveillance system is a system comprising one or many cameras and associated means configured to transmit the video signal (or signals) through a closed circuit to devices to display, record, process, and/or analyze it.
A video surveillance system may have several purposes, such as crime prevention, surveillance of industrial processes, traffic monitoring.
A video surveillance (VS) system has in general two main baseline functions: live viewing and recording (for the retrieval and viewing of video such as for a post-event investigation). Concerning the live viewing, a human person, referred to as operator, monitors one or several cameras, each camera corresponding to a given scene. In addition to these two main functions, there is also a growing use of Video Content Analytics (VCA) algorithms which process and analyze video in order to perform new tasks. For instance, typical VCA algorithms used in a video-surveillance system are face detection or recognition, people tracking, and licence plate reading.
Each function (recording, viewing, VCA processing) may require a same video flow from a same camera (corresponding to a given scene) but with different characteristics. The characteristics of a video stream correspond to a set of parameters such as video encoding algorithm (e.g., MPEG, H264), frame rate, resolution, or compression rate (that can be for example be processed by adapting the quantization step of the video stream).
After processing, the resulting video flow with given characteristics is referred to as a “video stream”. A video stream intended for a recording function (implemented in a recording server) is referred to as “recording stream”. A video stream intended for a viewing function (implemented in a viewer) is referred to as “viewing stream”. A video stream intended for a VCA processing function (implemented in a VCA server) is referred to as “VCA stream”. Thus, a set (defined as a non-empty collection of distinct elements) of video streams may be processed from a same video flow.
Each function requires certain video characteristics. These characteristics are referred to as “target characteristics” and are predetermined. This means that if all streams are generated with the target characteristics, the quality of service will be in line with a target quality (corresponding to the minimum quality desired or requested by the user or the destination device or application (e.g., recording server, viewer, VCA server)). This is in particular the case of an application embedded in a VCA server and configured to analyze a stream, for which the analysis requires given video characteristics, such as a minimum image definition or a given frame rate.
A video stream can be generated directly from the camera flow, but also from another video stream by modifying (processing) it in a device of the video-surveillance system. Basically, the generation of the video stream is performed at the initialization of the system but it can be also done on the fly during the use of the video-surveillance system (in operation mode). For instance, an operator who monitors several scenes can decide to watch an additional video flow from a new camera (i.e. to display on a viewer a video flow or stream currently not displayed), or to replace the display of a first scene captured by a first camera by a second scene captured by a second camera. In such a case, a new viewing stream needs to be processed, i.e. generated.
However, a video-surveillance system has limited resources. Resources correspond to the system's available capacities in terms of data processing and network. In particular, the network infrastructure is constrained, each communication link of a communication path having a limited bandwidth. Similarly, each device (such as camera, recording server, VCA server) of the video-surveillance system has limited resources in terms of processing and memory (i.e. limited data storage capacity).
For each video stream to be processed, a video stream strategy has to be determined. Each strategy uses resources: this can be evaluated by a “cost” in terms of resources of said strategy. When the available resources of a video surveillance system are exceeded, some video stream strategies cannot be determined and/or some video streams cannot be generated.
As an example consequence of this case, during operation of a video surveillance system, the system cannot display an additional scene captured by another video-camera due to a lack of available resources of the video-surveillance system, even if it is crucial for the operator to watch this scene.
To solve this issue, it is known to manually re-define the set of video stream strategies relative to all video streams including the requested video stream, taking into account the required quality (and the corresponding required characteristics) for each stream and the resources of the video-surveillance system.
However, this process can be long and during this transition period (period for determining the new configuration, i.e. the new set of strategies), the requested video stream cannot be processed and consequently cannot be displayed (or alternatively recorded, or analyzed).